package com.ruoyi.app.domain.vo;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import java.util.Date;
import java.util.List;


/**
 * APP商城订单视图对象 app_goods_orders
 *
 * @author heike
 * @date 2023-03-02
 */
@Data
@ExcelIgnoreUnannotated
public class AppGoodsOrdersVo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @ExcelProperty(value = "ID")
    private Long id;

    /**
     * 用户ID
     */
    @ExcelProperty(value = "用户ID")
    private Long userId;

    /**
     * 订单号
     */
    @ExcelProperty(value = "订单号")
    private String orderNo;

    /**
     * 外部订单号
     */
    @ExcelProperty(value = "外部订单号")
    private String externalOrderNo;

    /**
     * 订单价格
     */
    @ExcelProperty(value = "订单价格")
    private BigDecimal totalPrice;

    /**
     * 收货人姓名
     */
    @ExcelProperty(value = "收货人姓名")
    private String takeName;

    /**
     * 收货人手机号
     */
    @ExcelProperty(value = "收货人手机号")
    private String takePhone;

    /**
     * 收货地址
     */
    @ExcelProperty(value = "收货地址")
    private String takeAddress;

    /**
     * 支付时间
     */
    @ExcelProperty(value = "支付时间")
    private Date payTime;

    /**
     * 物流名称
     */
    @ExcelProperty(value = "物流名称")
    private String shipName;

    /**
     * 物流单号
     */
    @ExcelProperty(value = "物流单号")
    private String shipCode;

    /**
     * 发货时间
     */
    @ExcelProperty(value = "发货时间")
    private Date shipTime;

    /**
     * 运费
     */
    @ExcelProperty(value = "运费")
    private BigDecimal shipPrice;

    /**
     * 支付类型
     */
    @ExcelProperty(value = "支付类型")
    private String payType;

    /**
     * 订单状态 0=待支付 1=已支付 2=已发货 3=已收货 4=已取消
     */
    @ExcelProperty(value = "订单状态 0=待支付 1=已支付 2=已发货 3=已收货 4=已取消")
    private String status;

    /**
     * 1=普通商品 2=积分商品
     */
    @ExcelProperty(value = "1=普通商品 2=积分商品")
    private String type;

    /**
     * 取消订单时间
     */
    @ExcelProperty(value = "取消订单时间")
    private Date cancelTime;

    /**
     * 备注名称
     */
    @ExcelProperty(value = "备注名称")
    private String remark;

    /**
     * 订单的商品列表
     */
    private List<AppGoodsVo> goodsVos;

    /**
     * 订单是否评论
     */
    private String isComment;

    /**
     * 用户信息
     */
    private AppUserVo userVo;
}
